#ifndef CONEXION_H_
#define CONEXION_H_

#include "../../Server/SpaceBattleInterface.h"
#include "SocketProtocoloPlano.h"
#include "../ProtocoloPlano.h"

/*
 * @class Conexion
 *
 * @brief Conexion simple mediante Socket
 *
 */
class Conexion
{
protected:
	bool conectado;
public:

	/**
	* Constructor
	*/
	//  UDP  Conexion(unsigned int port,ColaMensajes* mensajes,bool UDP);
	Conexion(SocketProtocoloPlano* socket,ColaMensajes* mensajes);
	Conexion(unsigned int port,std::string host,ColaMensajes* mensajes);
	Conexion(unsigned int port,ColaMensajes* mensajes);

	bool estaConectado();

	int terminarSocket();
	virtual ~Conexion();

protected:
	bool requiereListen;

	SocketProtocoloPlano* socket;
	ColaMensajes* mensajes;

	DTO* conexionRecibir();
	int conexionEnviar(DTO* dto);

	void actualizarSockets();


private:
	ProtocoloPlano protocolo;
};

#endif /* CONEXION_H_ */
